#ifndef _NE_GL_RENDER_BUFFER_OBJECT_H_
#define _NE_GL_RENDER_BUFFER_OBJECT_H_

#include <graphics/GLObject.h>
#include <graphics/Texture.h>

namespace ne
{
    class NEAPI GLRenderBufferObject : public GLObject
    {
        public:
            GLRenderBufferObject();

            void setStorage(const TextureFormat format, const uint32_t width, const uint32_t height);

            TextureFormat getFormat() const;

            uint32_t getWidth() const;

            uint32_t getHeight() const;

            void bind();

            bool isRenderBuffer();

            virtual ~GLRenderBufferObject();

        private:
            GLRenderBufferObject(const GLRenderBufferObject &);

            GLRenderBufferObject& operator = (const GLRenderBufferObject &);

        private:
            TextureFormat mFormat;
            uint32_t mWidth;
            uint32_t mHeight;
    };
}

#endif
